home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 26.zip / BS1 part 26 / Aztec C v5.2a disk 2.adf / zoo.doc < prev   
Text File  |  1991-10-17  |  61KB  |  1,322 lines

  1.          
  2.         
  3.         
  4.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  5.         
  6.         
  7.         
  8.         NAME
  9.              zoo - manipulate archives of files in compressed form
  10.         
  11.         SYNOPSIS
  12.              zoo {acfDeghlLPTuUvVx}[aAcCdEfgImMnNoOpPqSu1:/.@n+-=]
  13.              archive [file] ...
  14.              zoo -command archive [file] ...
  15.              zoo h
  16.         
  17.         DESCRIPTION
  18.              Zoo is used to create and maintain collections of files in
  19.              compressed form.  It uses a Lempel-Ziv compression algorithm
  20.              that gives space savings in the range of 20% to 80% depend-
  21.              ing on the type of file data.  Zoo can store and selectively
  22.              extract multiple generations of the same file.  Data can be
  23.              recovered from damaged archives by skipping the damaged por-
  24.              tion and locating undamaged data with the help of fiz(1).
  25.         
  26.              This documentation is for version 2.0.  Changes from previ-
  27.              ous versions are described in the section labelled CHANGES.
  28.         
  29.              The command zoo h gives summary of commands.
  30.         
  31.              Zoo will not add an archive to itself, nor add the archive's
  32.              backup (with .bak extension to the filename) to the archive.
  33.         
  34.              Zoo has two types of commands:  Expert commands, which con-
  35.              sist of one command letter followed by zero or more modifier
  36.              characters, and Novice commands, which consist of a hyphen
  37.              (`-') followed by a command word that may be abbreviated.
  38.              Expert commands are case-sensitive but Novice commands are
  39.              not.
  40.         
  41.              When zoo adds a file to an existing archive, the default
  42.              action is to maintain one generation of each file in an
  43.              archive and to mark any older generation as deleted.  A
  44.              limit on the number of generations to save can be specified
  45.              by the user for an entire archive, or for each file indivi-
  46.              dually, or both.  Zoo deletes a stored copy of an added file
  47.              if necessary to prevent the number of stored generations
  48.              from exceeding the user-specified limit.
  49.         
  50.              Deleted files may be later undeleted.  Archives may be
  51.              packed to recover space occupied by deleted files.
  52.         
  53.              All commands assume that the archive name ends with the
  54.              characters .zoo unless a different extension is supplied.
  55.         
  56.              Novice commands
  57.         
  58.              Novice commands may be abbreviated to a hyphen followed by
  59.              at least one command character.  Each Novice command works
  60.         
  61.         
  62.         
  63.         Printed 2/4/88             Feb 3, 1988                          1
  64.         
  65.         
  66.         
  67.         
  68.         
  69.         
  70.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  71.         
  72.         
  73.         
  74.              in two stages. First, the command does its intended work.
  75.              Then, if the result was that one or more files were deleted
  76.              in the specified archive, the archive is packed.  If packing
  77.              occurs, the original unpacked archive is always left behind
  78.              with an extension of .bak.
  79.         
  80.              No Novice command ever stores the directory prefix of a
  81.              file.
  82.         
  83.              The Novice commands are as follows.
  84.         
  85.              -add    Adds the specified files to the archive.
  86.         
  87.              -freshen
  88.                   Adds a specified file to the archive if and only if an
  89.                   older file by the same name already exists in the
  90.                   archive.
  91.         
  92.              -delete
  93.                   Deletes the specified files from the archive.
  94.         
  95.              -update
  96.                   Adds a specified file to the archive either:  if an
  97.                   older file by the same name already exists in the
  98.                   archive or:  if a file by the same name does not
  99.                   already exist in the archive.
  100.         
  101.              -extract
  102.                   Extracts the specified files from the archive.  If no
  103.                   file is specified all files are extracted.
  104.         
  105.              -move
  106.                   Equivalent to -add except that source files are deleted
  107.                   after addition.
  108.         
  109.              -print
  110.                   Equivalent to -extract except that extracted data are
  111.                   sent to standard output.
  112.         
  113.              -list
  114.                   Gives information about the specified archived files
  115.                   including any attached comments.  If no files are
  116.                   specified all files are listed.  Deleted files are not
  117.                   listed.
  118.         
  119.              -test
  120.                   Equivalent to -extract except that the extracted data
  121.                   are not saved but any errors encountered are reported.
  122.         
  123.              -comment
  124.                   Allows the user to add or update comments attached to
  125.                   archived files.  When prompted, the user may:  type a
  126.         
  127.         
  128.         
  129.         Printed 2/4/88             Feb 3, 1988                          2
  130.         
  131.         
  132.         
  133.         
  134.         
  135.         
  136.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  137.         
  138.         
  139.         
  140.                   carriage return to skip the file, leaving any current
  141.                   comment unchanged;  or type a (possibly null) comment
  142.                   of up to 65,535 characters terminated by /end (case-
  143.                   insensitive) on a separate line;  or type the end-of-
  144.                   file character (normally control D) to skip all remain-
  145.                   ing files.
  146.         
  147.              -delete
  148.                   Deletes the specified files.
  149.         
  150.              The correspondence between Novice and Expert commands is as follows.
  151.         
  152.              Novice                                        Equivalent
  153.              Command    Description                        Expert Command
  154.              ____________________________________________________________
  155.              -add       add files to archive               aP:
  156.              -extract   extract files from archive         x
  157.              -move      move files to archive              aMP:
  158.              -test      test archive integrity             xNd
  159.              -print     extract files to standard output   xp
  160.              -delete    delete files from archive          DP
  161.              -list      list archive contents              VC
  162.              -update    add new or newer files             aunP:
  163.              -freshen   by add newer files                 auP:
  164.              -comment   add comments to files              c
  165.         
  166.              Expert commands
  167.         
  168.              The general format of expert commands is:
  169.         
  170.              zoo {acDeghlLPTuUvVx}[aAcCdEfImMnNoOpPqSu1:/.@n+-=] archive
  171.              [file] ...
  172.         
  173.              The characters enclosed within {} are commands.  Choose any
  174.              one of these.  The characters enclosed within [] just to the
  175.              right of the {} are modifiers and zero or more of these may
  176.              immediately follow the command character.  All combinations
  177.              of command and modifier characters may not be valid.
  178.         
  179.              Files are added to an archive with the command:
  180.         
  181.              zoo {au}[cfIMnPqu:+-] archive [file] ...
  182.         
  183.              Command characters are:
  184.         
  185.              a    Add each specified file to archive.  Any already-
  186.                   archived copy of the file is deleted if this is neces-
  187.                   sary to avoid exceeding the user-specified limit on the
  188.                   number of generations of the file to maintain in the
  189.                   archive.
  190.         
  191.         
  192.         
  193.         
  194.         
  195.         Printed 2/4/88             Feb 3, 1988                          3
  196.         
  197.         
  198.         
  199.         
  200.         
  201.         
  202.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  203.         
  204.         
  205.         
  206.              u    Do an update of the archive.  A specified file is added
  207.                   to the archive only if a copy of it is already in the
  208.                   archive and the copy being added is newer than the copy
  209.                   already in the archive.
  210.         
  211.              The following modifiers are specific to these commands.
  212.         
  213.              M    Move files to archive.  This makes zoo delete (unlink)
  214.                   the original files after they have been added to the
  215.                   archive.  Files are deleted after addition of all files
  216.                   to the archive is complete and after any requested
  217.                   packing of the archive has been done, and only if zoo
  218.                   detected no errors.
  219.         
  220.              n    Add new files only.  A specified file is added only if
  221.                   it isn't already in the archive.
  222.         
  223.              P    Pack archive after files have been added.
  224.         
  225.              u    Applied to the a command, this modifier makes it behave
  226.                   identically to the u command.
  227.         
  228.                   The combination of the n modifier with the u modifier
  229.                   or u command causes addition of a file to the archive
  230.                   either if the file is not already in the archive, or if
  231.                   the file is already in the archive but the archived
  232.                   copy is older than the copy being added.
  233.         
  234.              :    Do not store directory names.  In the absence of this
  235.                   modifier zoo stores the full pathname of each archived
  236.                   file.
  237.         
  238.              I    Read filenames to be archived from standard input. Zoo
  239.                   will read its standard input and assume that each line
  240.                   of text contains a filename.  Under AmigaDOS and the
  241.                   **IX family, the entire line is used.  Under MS-DOS and
  242.                   VAX/VMS, zoo assumes that the filename is terminated by
  243.                   a blank, tab, or newline; thus it is permissible for
  244.                   the line of text to contain more than one field
  245.                   separated by white space, and only the first field will
  246.                   be used.
  247.         
  248.                   Under the **IX family of operating systems, zoo can be
  249.                   used as follows in a pipeline:
  250.         
  251.                        find . -print | zoo aI sources
  252.         
  253.         
  254.         
  255.                   If the I modifier is specified, no filenames may be
  256.                   supplied on the command line itself.
  257.         
  258.         
  259.         
  260.         
  261.         Printed 2/4/88             Feb 3, 1988                          4
  262.         
  263.         
  264.         
  265.         
  266.         
  267.         
  268.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  269.         
  270.         
  271.         
  272.              +,-  These modifiers take effect only if the a command
  273.                   results in the creation of a new archive.  + causes any
  274.                   newly-created archive to have generations enabled.  -
  275.                   is provided for symmetry and causes any newly-created
  276.                   archive to have generations disabled;  this is also the
  277.                   default if neither + nor - is specified.
  278.         
  279.              Files are extracted from an archive with the command:
  280.         
  281.              zoo {ex}[dNoOpqS./@] archive [file] ...
  282.         
  283.              The e and x commands are synonymous.  If no file was speci-
  284.              fied, all files are extracted from the archive.
  285.         
  286.              The following modifiers are specific to the e and x com-
  287.              mands:
  288.         
  289.              N    Do not save extracted data but report any errors
  290.                   encountered.
  291.         
  292.              O    Overwrite files.  Normally, if a file being extracted
  293.                   would overwrite an already-existing file of the same
  294.                   name, zoo asks you if you really want to overwrite it.
  295.                   You may answer the question with `y', which means yes,
  296.                   overwrite; or `n', which means no, don't overwrite; or
  297.                   `a', which means assume the answer is `y' for this and
  298.                   all subsequent files.  The O modifier makes zoo assume
  299.                   that files may always be overwritten.  Neither answer-
  300.                   ing the question affirmatively nor using O alone will
  301.                   cause read-only files to be overwritten.
  302.         
  303.                   On **IX systems, however, doubling this modifier as OO
  304.                   will force zoo to unconditionally overwrite any read-
  305.                   protected files with extracted files if it can do so.
  306.         
  307.                   The O, N, and p modifiers are mutually exclusive.
  308.         
  309.              S    Supersede newer files on disk with older extracted
  310.                   files.  Unless this modifier is used, zoo will not
  311.                   overwrite a newer existing file with an older extracted
  312.                   file.
  313.         
  314.              o    This is equivalent to the O modifier if and only if it
  315.                   is given at least twice.  It is otherwise ignored.
  316.         
  317.              p    Pipe extracted data to standard output.  Error messages
  318.                   are piped to standard output as well.  However, if a
  319.                   bad CRC is detected, an error message is sent both to
  320.                   standard error and to standard output.
  321.         
  322.              /    Extract to original pathname.  Any needed directories
  323.                   must already exist.  In the absence of this modifier
  324.         
  325.         
  326.         
  327.         Printed 2/4/88             Feb 3, 1988                          5
  328.         
  329.         
  330.         
  331.         
  332.         
  333.         
  334.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  335.         
  336.         
  337.         
  338.                   all files are extracted into the current directory.  If
  339.                   this modifier is doubled as //, required directories
  340.                   need not exist and are created if necessary.
  341.         
  342.              The management of multiple generations of archived files is
  343.              done with the commands:
  344.         
  345.              zoo gl[Aq]{+-=}number archive files ..
  346.              zoo gc[q]{+-=}number archive files ..
  347.              zoo gA[q]- archive
  348.              zoo gA[q]+ archive
  349.         
  350.              The first form, gl, adjusts the generation limit of selected
  351.              files by the specified value.  If the form =n, is used,
  352.              where n is a decimal number, this sets the generation limit
  353.              to the specified value.  If + or - are used in placed of =
  354.              the effect is to increment or decrement the generation limit
  355.              by the specified value.  For example, the command
  356.         
  357.                   zoo gl=5 xyz :
  358.         
  359.         
  360.              sets the generation limit of each file in the archive
  361.              xyz.zoo to a value of 5.  The command
  362.         
  363.                   zoo gl-3 xyz :
  364.         
  365.         
  366.              decrements the generation limit of each file in the archive
  367.              to 3 less than it currently is.
  368.         
  369.              If the A modifier is used, the archive-wide generation limit
  370.              is adjusted instead.
  371.         
  372.              The number of generations of a file maintained in an archive
  373.              is limited by the file generation limit, or the archive gen-
  374.              eration limit, whichever is lower.  As a special case, a
  375.              generation limit of 0 stands for no limit.  Thus the default
  376.              file generation limit of 0 and archive generation limit of 1
  377.              limits the number of generations of each file in a newly-
  378.              created archive to one.
  379.         
  380.              The generation limit specified should be in the range 0
  381.              through 15;  any higher numbers are interpreted modulo 16.
  382.         
  383.              The second form of the command, using gc, adjusts the gen-
  384.              eration count of selected files.  Each file has a generation
  385.              count of 1 when it is first added to an archive.  Each time
  386.              a file by the same name is added again to an archive, it
  387.              receives a generation count that is one higher than the
  388.              highest generation count of the archived copy of the file.
  389.              The permissible range of generation counts is 1 through
  390.         
  391.         
  392.         
  393.         Printed 2/4/88             Feb 3, 1988                          6
  394.         
  395.         
  396.         
  397.         
  398.         
  399.         
  400.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  401.         
  402.         
  403.         
  404.              65535.  If repeated manipulations of an archive result in
  405.              files having very high generation counts, they may be set
  406.              back to lower numbers with the gc command.  The syntax of
  407.              the command is analogous to the syntax of the gl command,
  408.              except that the A modifier is not applicable to the gc com-
  409.              mand.
  410.         
  411.              The third form, gA-, disables generations in an archive.
  412.              Generations are off when an archive is first created, but
  413.              may be enabled with the fourth form of the command, gA+.
  414.              When generations are disabled in an archive, zoo will not
  415.              display generation numbers in archive listings or maintain
  416.              multiple generations.  Generations can be re-enabled at any
  417.              time, though manipulation of an archive with repeated inter-
  418.              spersed gA- and gA+ commands may result in an archive whose
  419.              behavior is not easily understandable.
  420.         
  421.              Archived files are listed with the command:
  422.         
  423.              zoo {lLvV}[aAcCdfgmqvV@/1+-] archive[.zoo] [file] ...
  424.         
  425.              l    Information presented includes the date and time of
  426.                   each file, its original and current (compressed) sizes,
  427.                   and the percentage size decrease due to compression
  428.                   (labelled CF or compression factor).  If a file was
  429.                   added to the archive in a different timezone, the
  430.                   difference between timezones is shown in hours as a
  431.                   signed number.  As an example, if the difference is
  432.                   listed as +3, this means that the file was added to the
  433.                   archive in a timezone that is 3 hours west of the
  434.                   current timezone.  The file time listed is, however,
  435.                   always the original timestamp of the archived file, as
  436.                   observed by the user who archived the file, expressed
  437.                   as that user's local time.  (Timezone information is
  438.                   stored and displayed only if the underlying operating
  439.                   system knows about timezones.)
  440.         
  441.                   If no filename is supplied all files are listed except
  442.                   deleted files.
  443.         
  444.                   Zoo selects which generation(s) of a file to list
  445.                   according to the following algorithm.
  446.         
  447.                   If no filename is supplied, only the latest generation
  448.                   of each file is listed.  If any filenames are speci-
  449.                   fied, and a generation is specified for an argument,
  450.                   only the requested generation is listed.  If a filename
  451.                   is specified ending with the generation character (`:'
  452.                   or `;'), all generations of that file are listed.  Thus
  453.                   a filename argument of the form zoo.c will cause only
  454.                   the latest generation of zoo.c to be listed;  an argu-
  455.                   ment of the form zoo.c:4 will cause generation 4 of
  456.         
  457.         
  458.         
  459.         Printed 2/4/88             Feb 3, 1988                          7
  460.         
  461.         
  462.         
  463.         
  464.         
  465.         
  466.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  467.         
  468.         
  469.         
  470.                   zoo.c to be listed;  and an argument of the form zoo.c:
  471.                   or zoo.c:* will cause all generations of zoo.c to be
  472.                   listed.
  473.         
  474.              L    This is identical to the l command except that all sup-
  475.                   plied arguments must be archives and the contents of
  476.                   each are listed.
  477.         
  478.                   On **IX systems, on which the shell expands arguments,
  479.                   if multiple archives are to be listed, the L command
  480.                   must be used.  On other systems (VAX/VMS, AmigaDOS,
  481.                   MSDOS) on which wildcard expansion is done internally
  482.                   by zoo, wildcards may be used in the archive name, and
  483.                   a multiple archive listing obtained, using the l com-
  484.                   mand.
  485.         
  486.              v    This causes any comment attached to the archive to be
  487.                   listed in addition to the other information.
  488.         
  489.              V    This causes any comment attached to the archive and
  490.                   also any comment attached to each file to be listed.
  491.         
  492.                   Both the V and v command characters can also be used as
  493.                   modifiers to the l and L commands.
  494.         
  495.              In addition to the general modifiers described later, the
  496.              following modifiers can be applied to the archive list com-
  497.              mands.
  498.         
  499.              a    This gives a single-line format containing both each
  500.                   filename and the name of the archive, sorted by archive
  501.                   name.  It is especially useful with the L command,
  502.                   since the result can be further sorted on any field to
  503.                   give a master listing of the entire contents of a set
  504.                   of archives.
  505.         
  506.              A    This causes any comment attached to the archive to be
  507.                   listed.
  508.         
  509.              g    This modifier causes file generation information to be
  510.                   listed about the archive.  For each file listed, the
  511.                   user-specified generation limit, if any, is listed.
  512.                   For example, `3g' for a file means that the user wants
  513.                   no more than three generations of the file to be kept.
  514.                   In archives created by older versions of zoo, the list-
  515.                   ing will show `-g', meaning that no generation informa-
  516.                   tion is kept and multiple generations of the file are
  517.                   not being maintained.
  518.         
  519.                   In addition to the generation information for each
  520.                   file, the archive-wide generation limit, if any, is
  521.                   shown at the end of the listing.  If generations have
  522.         
  523.         
  524.         
  525.         Printed 2/4/88             Feb 3, 1988                          8
  526.         
  527.         
  528.         
  529.         
  530.         
  531.         
  532.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  533.         
  534.         
  535.         
  536.                   been disabled by the user, this is so indicated, for
  537.                   example:
  538.         
  539.                        Archive generation limit is 3 (generations off).
  540.         
  541.                   For more information about generations see the descrip-
  542.                   tion of the g command.
  543.         
  544.              m    This modifier is currently applicable to **IX systems
  545.                   only.  It causes the mode bits (file protection code)
  546.                   of each file to be listed as a three-digit octal
  547.                   number.  Currently zoo preserves only the lowest nine
  548.                   mode bits.  Their meanings are as described in the **IX
  549.                   documentation for the chmod(1) command.
  550.         
  551.              C    This modifier causes the stored cyclic redundancy code
  552.                   (CRC) for each archived file to be shown as a four-
  553.                   digit hexadecimal number.
  554.         
  555.              1    This forces one filename to be listed per line.  It is
  556.                   most useful in combination with the f modifier.
  557.         
  558.              /    This forces any directory name to be always listed,
  559.                   even in fast columnized listings that do not normally
  560.                   include any directory names.
  561.         
  562.              +,-  The - modifier causes trailing generation numbers to be
  563.                   omitted from filenames.  The + modifier causes the
  564.                   trailing generation numbers to be shown, which is also
  565.                   the default if neither - nor + is specified.
  566.         
  567.              Files may be deleted and undeleted from an archive with the
  568.              following commands:
  569.         
  570.              zoo {DU}[Pq1] archive file ...
  571.         
  572.              The D command deletes the specified files and the U command
  573.              undeletes the specified files.  The 1 modifier (the digit
  574.              one, not the letter ell) forces deletion or undeletion of at
  575.              most one file.  If multiple instances of the same file exist
  576.              in an archive, use of the 1 modifier may allow selective
  577.              extraction of one of these.
  578.         
  579.              Comments may be added to an archive with the command:
  580.         
  581.              zoo c [A] archive
  582.         
  583.              Without the modifier A, this behaves identically to the
  584.              -comment command.  With the modifier A, the command serves
  585.              to add or update the comment attached to the archive as a
  586.              whole.  This comment may be listed with the lA, LA, v, and V
  587.              commands.  Applying the cA command to an archive that was
  588.         
  589.         
  590.         
  591.         Printed 2/4/88             Feb 3, 1988                          9
  592.         
  593.         
  594.         
  595.         
  596.         
  597.         
  598.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  599.         
  600.         
  601.         
  602.              created with an older version of zoo will result in an error
  603.              message requesting that the user first pack the archive with
  604.              the P command.  This reorganizes the archive and creates
  605.              space for the archive comment.
  606.         
  607.              The timestamp of an archive may be adjusted with the com-
  608.              mand:
  609.         
  610.              zoo T[q] archive
  611.         
  612.              Zoo normally attempts to maintain the timestamp of an
  613.              archive to reflect the age of the newest file stored in it.
  614.              Should the timestamp ever be incorrect it can be fixed with
  615.              the T command.
  616.         
  617.              An archive may be packed with the command:
  618.         
  619.              zoo P[EPq] archive
  620.         
  621.              If the backup copy of the archive already exists, zoo will
  622.              refuse to pack the archive unless the P modifier is also
  623.              given.  The E modifier causes zoo not to save a backup copy
  624.              of the original archive after packing.  A unique temporary
  625.              file in the current directory is used to initially hold the
  626.              packed archive.  This file will be left behind if packing is
  627.              interrupted or if for some reason this file cannot be
  628.              renamed to the name of the original archive when packing is
  629.              complete.
  630.         
  631.              Packing removes any garbage data appended to an archive
  632.              because of Xmodem file transfer and also recovers any wasted
  633.              space remaining in an archive that has been frequently
  634.              updated or in which comments were replaced.  Packing also
  635.              updates the format of any archive that was created by an
  636.              older version of zoo so that newer features (e.g. archive-
  637.              wide generation limit, archive comment) become fully avail-
  638.              able.
  639.         
  640.              Zoo can act as a pure compression or uncompression filter,
  641.              reading from standard input and writing to standard output.
  642.              This is achieved with the command:
  643.         
  644.              zoo f{cu}
  645.         
  646.              where c specifies compression and u specifies uncompression.
  647.              A CRC value is used to check the integrity of the data.  The
  648.              compressed data stream has no internal archive structure and
  649.              contains multiple files only if the input data stream was
  650.              already structured, as might be obtained, for example, from
  651.              tar or cpio.
  652.         
  653.         
  654.         
  655.         
  656.         
  657.         Printed 2/4/88             Feb 3, 1988                         10
  658.         
  659.         
  660.         
  661.         
  662.         
  663.         
  664.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  665.         
  666.         
  667.         
  668.               Modem transfers can be speeded up with these commands:
  669.         
  670.                        zoo fc < file | sz ... rz | zoo fu > file
  671.         
  672.         
  673.         
  674.              General modifiers
  675.         
  676.              The following modifiers are applicable to several commands:
  677.         
  678.              c    Applied to the a and u commands, this causes the user
  679.                   to be prompted for a comment for each file added to the
  680.                   archive.  If the file being added has replaced, or is a
  681.                   newer generation of, a file already in the archive, any
  682.                   comment attached to that file is shown to the user and
  683.                   becomes attached to the newly-added file unless the
  684.                   user changes it.  Possible user responses are as
  685.                   described for the -comment command.  Applied to the
  686.                   archive list command l, the c modifier causes the list-
  687.                   ing of any comments attached to archived files.
  688.         
  689.               .   In conjunction with / or // this modifier causes any
  690.                   extracted pathname beginning with `/' to be interpreted
  691.                   relative to the current directory, resulting in the
  692.                   possible creation of a subtree rooted at the current
  693.                   directory.  In conjunction with the command P the .
  694.                   modifier causes the packed archive to be created in the
  695.                   current directory.  This is intended to allow users
  696.                   with limited disk space but multiple disk drives to
  697.                   pack large archives.
  698.         
  699.              d    Most commands that act on an archive act only on files
  700.                   that are not deleted.  The d modifier makes commands
  701.                   act on both normal and deleted files.  If doubled as
  702.                   dd, this modifier forces selection only of deleted
  703.                   files.
  704.         
  705.              f    Applied to the a and u commands, the f modifier causes
  706.                   fast archiving by adding files without compression.
  707.                   Applied to l it causes a fast listing of files in a
  708.                   multicolumn format.
  709.         
  710.              q    Be quiet.  Normally zoo lists the name of each file and
  711.                   what action it is performing.  The q modifier
  712.                   suppresses this.  When files are being extracted to
  713.                   standard output, the q modifier suppresses the header
  714.                   preceding each file.  When archive contents are being
  715.                   listed, this modifier suppresses any header and
  716.                   trailer.  When a fast columnized listing is being
  717.                   obtained, this modifier causes all output to be com-
  718.                   bined into a single set of filenames for all archives
  719.                   being listed.
  720.         
  721.         
  722.         
  723.         Printed 2/4/88             Feb 3, 1988                         11
  724.         
  725.         
  726.         
  727.         
  728.         
  729.         
  730.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  731.         
  732.         
  733.         
  734.                   When doubled as qq, this modifier suppresses WARNING
  735.                   messages, and when tripled as qqq, ERROR messages are
  736.                   suppressed too.  FATAL error messages are never
  737.                   suppressed.
  738.         
  739.              Recovering data from damaged archives
  740.         
  741.              The @ modifier allows the user to specify the exact position
  742.              in an archive where zoo should extract a file from, allowing
  743.              damaged portions of an archive to be skipped.  This modifier
  744.              must be immediately followed by a decimal integer without
  745.              intervening spaces, and possibly by a comma and another
  746.              decimal integer, giving a command of the form l@m or l@m,n
  747.              (to list archive contents) or x@m or x@m,n (to extract files
  748.              from an archive).  Listing or extraction begin at position m
  749.              in the archive.  The value of m must be the position within
  750.              the archive of an undamaged directory entry.  This position
  751.              is usually obtained from fiz(1) version 2.0 or later.
  752.         
  753.              If damage to the archive has shortened or lengthened it, all
  754.              positions within the archive may be changed by some constant
  755.              amount.  To compensate for this, the value of n may be
  756.              specified.  This value is also usually obtained from fiz(1).
  757.              It should be the position in the archive of the file data
  758.              corresponding to the directory entry that has been specified
  759.              with m.  Thus if the command x@456,575 is given, it will
  760.              cause the first 456 bytes of the archive to be skipped and
  761.              extraction to begin at offset 456;  in addition, zoo will
  762.              attempt to extract the file data from position 575 in the
  763.              archive instead of the value that is found in the directory
  764.              entry read from the archive.  For example, here is some of
  765.              the output of fiz when it acts on a damaged zoo archive:
  766.         
  767.              ****************
  768.                  2526: DIR  [changes] ==>   95
  769.                  2587: DATA
  770.              ****************
  771.                  3909: DIR  [copyrite] ==> 1478
  772.                  3970: DATA
  773.                  4769: DATA
  774.              ****************
  775.         
  776.              In such output, DIR indicates where fiz found a directory
  777.              entry in the archive, and DATA indicates where fiz found
  778.              file data in the archive.  Filenames located by fiz are
  779.              enclosed in square brackets, and the notation "==>   95"
  780.              indicates that the directory entry found by fiz at position
  781.              2526 has a file data pointer to position 95.  (This is
  782.              clearly wrong, since file data always occur in an archive
  783.              after their directory entry.)  In actuality, fiz found file
  784.              data at positions 2587, 3970, and 4769.  Since fiz found
  785.              only two directory entries, and each directory entry
  786.         
  787.         
  788.         
  789.         Printed 2/4/88             Feb 3, 1988                         12
  790.         
  791.         
  792.         
  793.         
  794.         
  795.         
  796.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  797.         
  798.         
  799.         
  800.              corresponds to one file, one of the file data positions is
  801.              an artifact.
  802.         
  803.              In this case, commands to try giving to zoo might be
  804.              x@2526,2587 (extract beginning at position 2526, and get
  805.              file data from position 2587), x@3090,3970 (extract at 3090,
  806.              get data from 3970) and x@3909,4769 (extract at 3909, get
  807.              data from 4769).  Once a correctly-matched directory
  808.              entry/file data pair is found, zoo will in most cases syn-
  809.              chronize with and correctly extract all files subsequently
  810.              found in the archive.  Trial and error should allow all
  811.              undamaged files to be extracted.  Also note that self-
  812.              extracting archives created using sez (the Self-Extracting
  813.              Zoo utility for MS-DOS), which are normally executed on an
  814.              MS-DOS system for extraction, can be extracted on non-MSDOS
  815.              systems using zoo's damaged-archive recovery method using
  816.              the @ modifier.
  817.         
  818.              Wildcard handling
  819.         
  820.              Under the **IX family of operating systems, the shell nor-
  821.              mally expands wildcards to a list of matching files.  Wild-
  822.              cards that are meant to match files within an archive must
  823.              therefore be escaped or quoted.  When selecting files to be
  824.              added to an archive, wildcard conventions are as defined for
  825.              the shell.  When selecting files from within an archive,
  826.              wildcard handling is done by zoo as described below.
  827.         
  828.              Under MS-DOS and AmigaDOS, quoting of wildcards is not
  829.              needed.  All wildcard expansion of filenames is done by zoo,
  830.              and wildcards inside directory names are expanded only when
  831.              listing or extracting files but not when adding them.
  832.         
  833.              The wildcard syntax interpreted by zoo is limited to the
  834.              following characters.
  835.         
  836.              *    Matches any sequence of zero or more characters.
  837.         
  838.              ?    Matches any single character.
  839.         
  840.                   Arbitrary combinations of * and ? are allowed.
  841.         
  842.              /    If a supplied pattern contains a slash anywhere in it,
  843.                   then the slash separating any directory prefix from the
  844.                   filename must be matched explicitly.  If a supplied
  845.                   pattern contains no slashes, the match is selective
  846.                   only on the filename.
  847.         
  848.              c-c  Two characters separated by a hyphen specify a charac-
  849.                   ter range.  All filenames beginning with those charac-
  850.                   ters will match.  The character range is meaningful
  851.                   only by itself or preceded by a directory name.  It is
  852.         
  853.         
  854.         
  855.         Printed 2/4/88             Feb 3, 1988                         13
  856.         
  857.         
  858.         
  859.         
  860.         
  861.         
  862.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  863.         
  864.         
  865.         
  866.                   not specially interpreted if it is part of a filename.
  867.         
  868.              : and ;
  869.                   These characters are used to separate a filename from a
  870.                   generation number and are used when selecting specific
  871.                   generations of archived files.  If no generation char-
  872.                   acter is used, the filename specified matches only the
  873.                   latest generation of the file.  If the generation char-
  874.                   acter is specified, the filename and the generation are
  875.                   matched independently by zoo's wildcard mechanism.  If
  876.                   no generation is specified following the : or ; charac-
  877.                   ter, all generations of that file will match.  As a
  878.                   special case, a generation number of 0 matches only the
  879.                   latest generation of a file, while ^0 matches all gen-
  880.                   erations of a file except the latest one.  If no
  881.                   filename is specified preceding the generation charac-
  882.                   ter, all filenames will match.  As a corollary, the
  883.                   generation character by itself matches all generations
  884.                   of all files.
  885.         
  886.              MS-DOS users should note that zoo does not treat the dot as
  887.              a special character, and it does not ignore characters fol-
  888.              lowing an asterisk.  Thus * matches all filenames; *.*
  889.              matches filenames containing a dot; *_* matches filenames
  890.              containing an underscore;  and *z matches all filenames that
  891.              end with the character z, whether or not they contain a dot.
  892.         
  893.              Usage hints
  894.         
  895.              The Novice command set in zoo is meant to provide an inter-
  896.              face with functionality and format that will be familiar to
  897.              users of other similar archive utilities.  In keeping with
  898.              this objective, the Novice commands do not maintain or use
  899.              any subdirectory information or allow the use of zoo's abil-
  900.              ity to maintain multiple generations of files.  For this
  901.              reason, users should switch to exclusively using the Expert
  902.              commands as soon as possible.
  903.         
  904.              Although the Expert command set is quite large, it should be
  905.              noted that in almost every case, all legal modifiers for a
  906.              command are fully orthogonal.  This means that the user can
  907.              select any combination of modifiers, and when they act
  908.              together, they will have the intuitively obvious effect.
  909.              Thus the user need only memorize what each modifier does,
  910.              and then can combine them as needed without much further
  911.              thought.
  912.         
  913.              For example, consider the a command which is used to add
  914.              files to an archive.  By itself, it simply adds the speci-
  915.              fied files.  To cause only already-archived files to be
  916.              updated if their disk copies have been modified, it is only
  917.              necessary to add the u modifier, making the command au.  To
  918.         
  919.         
  920.         
  921.         Printed 2/4/88             Feb 3, 1988                         14
  922.         
  923.         
  924.         
  925.         
  926.         
  927.         
  928.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  929.         
  930.         
  931.         
  932.              cause only new files (i.e., files not already in the
  933.              archive) to be added, the n modifier is used to create the
  934.              command an.  To cause both already-archived files to be
  935.              updated and new files to be added, the u and n modifiers can
  936.              be used together, giving the command aun.  Since the order
  937.              of modifiers is not significant, the command could also be
  938.              anu.
  939.         
  940.              Further, the c modifier can be used to cause zoo to prompt
  941.              the user for a comment to attach to each file added.  And
  942.              the f modifier can cause fast addition (addition without
  943.              compression).  It should be obvious then that the command
  944.              auncf will cause zoo to update already-archived files, add
  945.              new files, prompt the user for comments, and do the addition
  946.              of files without any compression.  Furthermore, if the user
  947.              wishes to move files to the archive, i.e., delete the disk
  948.              copy of each file after it is added to the archive, it is
  949.              only necessary to add the M modifier to the command, so it
  950.              becomes auncfM.  And if the user also wishes to cause the
  951.              archive to be packed as part of the command, thus recovering
  952.              space from any files that are replaced, the command can be
  953.              modified to auncfMP by adding the P modifier that causes
  954.              packing.
  955.         
  956.              Similarly, the archive listing commands can be built up by
  957.              combining modifiers.  The basic command to list the contents
  958.              of an archive is l.  If the user wants a fast columnized
  959.              listing, the f modifier can be added to give the lf command.
  960.              Since this listing will have a header giving the archive
  961.              name and a trailer summarizing interesting information about
  962.              the archive, such as the number of deleted files, the user
  963.              may wish to "quieten" the listing by suppressing these;  the
  964.              relevant modifier is q, which when added to the command
  965.              gives lfq.  If the user wishes to see the **IX mode (file
  966.              protection) bits, and also information about multiple gen-
  967.              erations, the modifiers m (show mode bits) and g (show gen-
  968.              eration information) can be added, giving the command lfqmg.
  969.              If the user also wishes to see an attached archive comment,
  970.              the modifier A (for archive) will serve.  Thus the command
  971.              lfqmgA will give a fast columnized listing of the archive,
  972.              suppressing any header and trailer, showing mode bits and
  973.              generation information, and showing any comment attached to
  974.              the archive as a whole.  If in addition individual comments
  975.              attached to files are also needed, simply append the c
  976.              modifier to the command, making it lfqmgAc.  The above com-
  977.              mand will not show any deleted files, however;  to see them,
  978.              use the d modifier, making the command lfqmgAcd (or double
  979.              it as in lfqmgAcdd if only the deleted files are to be
  980.              listed).  And if the user also wishes to see the CRC value
  981.              for each file being listed, the modifier C will do this, as
  982.              in the command lfqmgAcdC, which gives a fast columnized
  983.              listing of all files, including deleted files, showing any
  984.         
  985.         
  986.         
  987.         Printed 2/4/88             Feb 3, 1988                         15
  988.         
  989.         
  990.         
  991.         
  992.         
  993.         
  994.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  995.         
  996.         
  997.         
  998.              archive comment and file comments, and file protection codes
  999.              and generation information, as well as the CRC value of each
  1000.              file.
  1001.         
  1002.              Note that the above command lfqmgAcdC could also be abbrevi-
  1003.              ated to VfqmgdC because the command V is shorthand for lcA
  1004.              (archive listing with all comments shown).  Similarly the
  1005.              command v is shorthand for lA (archive listing with archive
  1006.              comment shown).  Both V and v can be used as modifiers to
  1007.              any of the other archive listing commands.
  1008.         
  1009.              Generations
  1010.         
  1011.              By default, zoo assumes that only the latest generation of a
  1012.              specified file is needed.  If generations other than the
  1013.              latest one need to be selected, this may be done by specify-
  1014.              ing them in the filename.  For example, the name stdio.h
  1015.              would normally refer to the latest generation of the file
  1016.              stdio.h stored in a zoo archive.  To get an archive listing
  1017.              showing all generations of stdio.h in the archive, the
  1018.              specification stdio.h:* could be used (enclosed in single
  1019.              quotes if necessary to protect the wildcard character * from
  1020.              the shell).  Also, stdio.h:0 selects only the latest genera-
  1021.              tion of stdio.h, while stdio.h:^0 selects all generations
  1022.              except the latest one.  The : character here separates the
  1023.              filename from the generation number, and the character * is
  1024.              a wildcard that matches all possible generations.  For con-
  1025.              venience, the generation itself may be left out, so that the
  1026.              name stdio.h: (with the : but without a generation number or
  1027.              a wildcard) matches all generations exactly as stdio.h:*
  1028.              does.
  1029.         
  1030.              If a generation is specified but no filename is present, as
  1031.              in :5, :*, or just :, all filenames of the specified genera-
  1032.              tion will be selected.  Thus :5 selects generation 5 of each
  1033.              file, and :* and : select all generations of all files.
  1034.         
  1035.              It is important to note that zoo's idea of the latest gen-
  1036.              eration of a file is not based upon searching the entire
  1037.              archive.  Instead, whenever zoo adds a file to an archive,
  1038.              it is marked as being the latest generation.  Thus, if the
  1039.              latest generation of a file is deleted, then no generation
  1040.              of that file is considered the latest any more.  This can be
  1041.              surprising to the user.  For example, if an archive already
  1042.              contains the file stdio.h:5 and a new copy is added, appear-
  1043.              ing in the archive listing as stdio.h:6, and then stdio.h:6
  1044.              is deleted, the remaining copy stdio.h:5 will no longer be
  1045.              considered to be the latest generation, and the file
  1046.              stdio.h:5, even if undeleted, will no longer appear in an
  1047.              archive listing unless generation 5 (or every generation) is
  1048.              specifically requested.  This behavior will likely be
  1049.              improved in future releases of zoo.
  1050.         
  1051.         
  1052.         
  1053.         Printed 2/4/88             Feb 3, 1988                         16
  1054.         
  1055.         
  1056.         
  1057.         
  1058.         
  1059.         
  1060.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  1061.         
  1062.         
  1063.         
  1064.         FILES
  1065.              xXXXXXX - temporary file used during packing
  1066.              archive_name.bak - backup of archive
  1067.         
  1068.         SEE ALSO
  1069.              compress(1), fiz(1)
  1070.         
  1071.         BUGS
  1072.              Files with generation counts that wrap around from 65535 to
  1073.              1 are not currently handled correctly.  If a file's genera-
  1074.              tion count reaches a value close to 65535, it should be
  1075.              manually set back down to a low number.  This may be easily
  1076.              done with a command such as gc-65000, which subtracts 65000
  1077.              from the generation count of each specified file.  This
  1078.              problem will be fixed in a future release.
  1079.         
  1080.              Although zoo on **IX systems preserves the lowest nine mode
  1081.              bits of regular files, it does not currently do the same for
  1082.              directories.
  1083.         
  1084.              Currently zoo's handling of the characters : and ; in
  1085.              filenames is not robust, because it interprets these to
  1086.              separate a filename from a generation number.  A quoting
  1087.              mechanism will eventually be implemented.
  1088.         
  1089.              Standard input cannot be archived nor can a created archive
  1090.              be sent to standard output.  Spurious error messages may
  1091.              appear if the filename of an archive is too long.
  1092.         
  1093.              Since zoo never archives any file with the same name as the
  1094.              archive or its backup (regardless of any path prefixes),
  1095.              care should be taken to make sure that a file to be archived
  1096.              does not coincidentally have the same name as the archive it
  1097.              is being added to.  It usually suffices to make sure that no
  1098.              file being archived is itself a zoo archive.  (Previous ver-
  1099.              sions of zoo sometimes tried to add an archive to itself.
  1100.              This bug now seems to be fixed.)
  1101.         
  1102.              Only regular files are archived; directories and devices are
  1103.              not.
  1104.         
  1105.              Early versions of MS-DOS have a bug that prevents "." from
  1106.              referring to the root directory;  this leads to anomalous
  1107.              results if the extraction of paths beginning with a dot is
  1108.              attempted.
  1109.         
  1110.              VAX/VMS destroys case information unless arguments are
  1111.              enclosed in double quotes.  For this reason if a command
  1112.              given to zoo on a VAX/VMS system includes any uppercase
  1113.              characters, it must be enclosed in double quotes.  Under
  1114.              VAX/VMS, zoo does not currently restore file timestamps;
  1115.              this will be fixed as soon as I figure out RMS extended
  1116.         
  1117.         
  1118.         
  1119.         Printed 2/4/88             Feb 3, 1988                         17
  1120.         
  1121.         
  1122.         
  1123.         
  1124.         
  1125.         
  1126.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  1127.         
  1128.         
  1129.         
  1130.              attribute blocks, or DEC supplies a utime() function, which-
  1131.              ever occurs first.  Other VMS bugs, related to file struc-
  1132.              tures, can often be overcome by using the program bilf.c
  1133.              that is supplied with zoo.
  1134.         
  1135.              It is not currently possible to create a zoo archive con-
  1136.              taining all zoo archives that do not contain themselves.
  1137.         
  1138.         DIAGNOSTICS
  1139.              Error messages are intended to be self-explanatory and are
  1140.              divided into three categories.  WARNINGS are intended to
  1141.              inform the user of an unusual situation, such as a CRC error
  1142.              during extraction, or -freshening of an archive containing a
  1143.              file newer than one specified on the command line.  ERRORS
  1144.              are fatal to one file, but execution continues with the next
  1145.              file if any.  FATAL errors cause execution to be aborted.
  1146.              The occurrence of any of these causes an exit status of 1.
  1147.              Normal termination without any errors gives an exit status
  1148.              of 0.  (Under VAX/VMS, however, to avoid an annoying mes-
  1149.              sage, zoo always exits with an error code of 1.)
  1150.         
  1151.         COMPATIBILITY
  1152.              All versions of zoo on all systems are required to create
  1153.              archives that can be extracted and listed with all versions
  1154.              of zoo on all systems, regardless of filename and directory
  1155.              syntax or archive structure;  furthermore, any version of
  1156.              zoo must be able to fully manipulate all archives created by
  1157.              all lower-numbered versions of zoo on all systems.  So far
  1158.              as I can tell, this upward compatiblity (all manipulations)
  1159.              and downward compatiblity (ability to extract and list) is
  1160.              maintained by zoo version 2.0.  You are forbidden, with the
  1161.              force of copyright law, to create from the zoo source code
  1162.              any derivative work that violates this compatibility goal,
  1163.              whether knowingly or through negligence.  If any violation
  1164.              of this compatibility goal is observed-i.e., if you are able
  1165.              to use an implementation of zoo to create an archive that
  1166.              some implementation of zoo on any system cannot extract-this
  1167.              should be considered a serious problem and reported to me.
  1168.         
  1169.         CHANGES
  1170.              Zoo version 1.5 was posted to Usenet in mid-1987.  Later, I
  1171.              distributed version 1.71 via anonymous UUCP and disks, but I
  1172.              did not widely distribute it by other means such as online
  1173.              information services or bulletin boards, because changes
  1174.              from 1.5 to 1.71 were minor.  Although 1.5 was distributed
  1175.              for MSDOS in binary form, 1.71 was not.  The Amiga version
  1176.              of 1.71 has just been released as this documentation is
  1177.              written.
  1178.         
  1179.              The current version 2.0 is a significant enhancement from
  1180.              1.5, with many new features and improvements.  Here is a
  1181.              list.  In parentheses is given the version in which each
  1182.         
  1183.         
  1184.         
  1185.         Printed 2/4/88             Feb 3, 1988                         18
  1186.         
  1187.         
  1188.         
  1189.         
  1190.         
  1191.         
  1192.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  1193.         
  1194.         
  1195.         
  1196.              feature was introduced.
  1197.         
  1198.              -    (1.71) New modifiers to the list commands permit
  1199.                   optional suppression of header and trailer information,
  1200.                   inclusion of directory names in columnized listings,
  1201.                   and fast one-column listings.
  1202.         
  1203.              -    (1.71) Timezones are handled.
  1204.         
  1205.              -    (1.71) A bug was fixed that had made it impossible to
  1206.                   individually update comments for a file whose name did
  1207.                   not correspond to MS-DOS format.
  1208.         
  1209.              -    (1.71) A change was made that now permits use of the
  1210.                   shared library on the **IX PC.
  1211.         
  1212.              -    (1.71) VAX/VMS is now supported reasonably well.
  1213.         
  1214.              -    (2.0) A comment may now be attached to the archive
  1215.                   itself.
  1216.         
  1217.              -    (2.0) The OO option allows forced overwriting of read-
  1218.                   only files.
  1219.         
  1220.              -    (2.0) Zoo will no longer extract a file if a newer copy
  1221.                   already exists on disk;  the S option will override
  1222.                   this.
  1223.         
  1224.              -    (2.0) File attributes are preserved for **IX systems.
  1225.         
  1226.              -    (2.0) Multiple generations of the same file are sup-
  1227.                   ported.
  1228.         
  1229.              -    (2.0) Zoo will now act as a compression or decompres-
  1230.                   sion filter on a stream of data and will use a CRC
  1231.                   value to check the integrity of a data stream that is
  1232.                   uncompressed.
  1233.         
  1234.              -    (2.0) A bug was fixed that caused removal of a direc-
  1235.                   tory link if files were moved to an archive by the
  1236.                   superuser on a **IX system.
  1237.         
  1238.              -    (2.0) The data recovery modifier @ was greatly
  1239.                   enhanced.  Self-extracting archives created for MS-DOS
  1240.                   systems can now be extracted by zoo on any system with
  1241.                   help from fiz(1).
  1242.         
  1243.         FUTURE DIRECTIONS
  1244.              A revised version of zoo is in the works that will be able
  1245.              to write newly-created archives to standard output, and will
  1246.              also automatically perform end-of-line conversion for text
  1247.              files moved between dissimilar systems.  It will be upward
  1248.         
  1249.         
  1250.         
  1251.         Printed 2/4/88             Feb 3, 1988                         19
  1252.         
  1253.         
  1254.         
  1255.         
  1256.         
  1257.         
  1258.         ZOO(1)              UNIX Programmer's Manual               ZOO(1)
  1259.         
  1260.         
  1261.         
  1262.              and downward compatible with existing versions of zoo.
  1263.         
  1264.         ACKNOWLEDGEMENTS
  1265.              The zoo archiver was initially developed using Microsoft C
  1266.              3.0 on a PC clone manufactured by Toshiba of Japan and
  1267.              almost sold by Xerox.  Availability of the following systems
  1268.              was helpful in achieving portability: Paul Homchick's Compaq
  1269.              running Microport System V/AT;  The Eskimo BBS somewhere in
  1270.              Oregon running Xenix/68000; Greg Laskin's system 'gryphon'
  1271.              which is an Intel 310 running Xenix/286;  Ball State
  1272.              University's AT&T 3B2/300, UNIX PC, and VAX-11/785 (4.3BSD)
  1273.              systems.  In addition J. Brian Waters provided feedback to
  1274.              help me make the code compilable on his Amiga using
  1275.              Manx/Aztec C.  More recently, actual development, as opposed
  1276.              to portability testing, has been done exclusively on my own
  1277.              AT from PC's Limited running Microport System V/AT.  The
  1278.              executable version 2.0 for MS-DOS is currently compiled with
  1279.              Borland's Turbo C 1.0.
  1280.         
  1281.              Special thanks are due to:
  1282.         
  1283.              J. Brian Waters <uunet!bsu-cs!jbwaters>, who has worked
  1284.              diligently to port zoo to AmigaDOS, created Amiga-specific
  1285.              code, and continues keeping it updated.
  1286.         
  1287.              Paul Homchick <rutgers!cgh!paul>, who provided numerous
  1288.              detailed reports about some nasty bugs.
  1289.         
  1290.              Bill Davidsen <steinmetz!crdos1!davidsen>, who fixed zoo's
  1291.              handling of daylight savings time, provided changes to make
  1292.              this manual format correctly with troff, and provided many
  1293.              useful bug reports and suggestions.
  1294.         
  1295.              Mark Alexander <amdahl!drivax!alexande>, who provided me
  1296.              with some bug fixes, and also some portability modifications
  1297.              and speed optimizations that are due to be incorporated into
  1298.              the next release.
  1299.         
  1300.         AUTHOR
  1301.              Rahul Dhesi
  1302.         
  1303.         
  1304.         
  1305.         
  1306.         
  1307.         
  1308.         
  1309.         
  1310.         
  1311.         
  1312.         
  1313.         
  1314.         
  1315.         
  1316.         
  1317.         Printed 2/4/88             Feb 3, 1988                         20
  1318.         
  1319.         
  1320.         
  1321.         
  1322.